// 版权声明，Epic Games 公司保留所有权利

#pragma once

#include "GameplayTagContainer.h"
#include "Inventory/LyraInventoryItemDefinition.h"

#include "InventoryFragment_SetStats.generated.h"

class ULyraInventoryItemInstance;
class UObject;
struct FGameplayTag;

/**
 * 设置物品属性的库存片段类
 */
UCLASS()
class UInventoryFragment_SetStats : public ULyraInventoryItemFragment
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditDefaultsOnly, Category=Equipment)
	TMap<FGameplayTag, int32> InitialItemStats; // 初始物品属性映射表

public:
	/**
	 * 当物品实例被创建时调用
	 * @param Instance 库存物品实例
	 */
	virtual void OnInstanceCreated(ULyraInventoryItemInstance* Instance) const override;

	/**
	 * 根据标签获取物品属性值
	 * @param Tag 游戏标签
	 * @return 属性值，如果未找到则返回0
	 */
	int32 GetItemStatByTag(FGameplayTag Tag) const;
};